NAME GU_CoordsInGadBox -- Check if a coordinate pair is within a gadget. SYNOPSIS IsInBox = GU_CoordsInGadBox(coords, gad) D0,SR(Z) D0 A0 BOOL GU_CoordsInGadBox(ULONG, struct Gadget *); FUNCTION Check if a coordinate pair is within a gadget's border. This function may be used to make coordinate sensitive AppWindows (allows the user to drop a file on a string gadget etc.). To use this function, you must save the coordinates from the recieved message (AppMessage, IntuiMessage) to have something to compare against. INPUTS coords - a combined LONG of both the X and Y coordinates to compare against. The X coordinate should be in the upper word of the parameter. gad - the gadget to check the coordinates against. RESULT IsInBox - TRUE if both given coordinates was within the gadget's outer box (X coord is between gadx and gadx+gadw, Y coord is between gady and gady+gadh). Otherwise this function will return FALSE. EXAMPLES Assembly language: move.l im_MouseX(a0),d0 ; Get X and Y coordinates move.l mystrgad(pc),a0 move.l GadUtilBase(pc),a6 jsr _LVOGU_CoordsInGadBox(a6) beq.b .notinbox ; Not in gadget box ; Do what you want to do if the coordinates are ; within the gadget box .notinbox: ; Here, you may want to check for some other gadgets C: long coords; coords = (LONG)appmsg->MouseX << 16 | appmsg->MouseY; if (CoordsInGadBox(coords,mystrgad) = TRUE) { /* Do what you want to do if the coordinates are within the gadget box */ } else { /* Here, you may want to check for some other gadgets */ }
Converted on 19 Jul 1996 with RexxDoesAmigaGuide2HTML by Michael Ranner.